Modern computer devices are capable of communicating (i.e., transmitting and receiving data) with other computer devices over various data networks, such as cellular networks, WiFi, Ethernet, Internet, and so forth. To facilitate the communications between computer devices, the networks typically include one or more network devices (e.g., a network switch, a network router, etc.) to route the communications (i.e., network packets) from one computer device to another based on network flows. In some cases, the routing of communications may be performed by a cluster of computer devices that act in concert to perform the functions of a network device.
For example, a cluster of interconnected server nodes can be used for network packet routing and switching. In a server node cluster, each server node may receive network packets from one or more external ports and dispatch the received network packets to the other server nodes for forwarding to a destination or egress ports based on identification key-value pairs of the network flow. To route the network traffic through the server node cluster, the server nodes generally use a routing table (i.e., routing information base (RIB)) and a forwarding table (i.e., forwarding information base (FIB)).
As each server node is added to the cluster, not only does the forwarding capacity of the cluster increase, but so does the number of destination addresses it can reach. As the size of the infrastructure of the network is scaled up, the size of each of the routing table and the forwarding table also increases, and can become very large. Larger routing tables require more time and computing resources (e.g., memory, storage, processing cycles, etc.) to perform lookups on the routing/forwarding table (hereinafter, the terms routing table, forwarding table or other similar terms may be considered synonymous, unless the context clearly indicates otherwise; also they may be generically referred as lookup table). Additionally, adverse effects of such scaling may include additional hops (i.e., each passing of the network packet between server nodes) required to process the network packet, or lookups being performed across the cluster's internal switch fabric, for example. Such adverse effects may result in decreased throughput and/or a forwarding table size that exceeds a forwarding table capacity. Moreover, as server nodes are added to the cluster, computing resources need to update the forwarding tables may also increase.